import Vue from 'vue';
import Vuex from 'vuex';
	// 第一步 引入
	// 第二部 将 Vuex 注册在 Vue上，作为 Vue 的插件
	Vue.use( Vuex );


	// 将 vuex 的实例导出

let shopList = [{
	name : 'apple',
	id : '1',
	count : 0,
},{
	name : 'banana',
	id : '2',
	count : 4
}];
/*
	getters 与 computed 类似，都是计算属性
	区别在于 $store.getters.totals 访问

*/
export default new Vuex.Store({
	state : {
		count : 10, // 定义状态数据
		shopList,
	},
	getters : {
		totals( state ){
			return state.shopList.reduce( ( n, item ) => n + item.count, 0 )
		}
	},
	// 改变状态 
	mutations : {
		updateCount( state ){ // 用于改变 state 状态
 			state.count += 1;
 			console.log(this.state == state ,'this')
		},
		updateCountById( state, payload ){
			let curItem = state.shopList.find( item => item.id == payload.id );
			switch( payload.flag ){
				case '+' : curItem.count++; break;
				case '-' : curItem.count++; break;
			}
			return curItem.count;
		}
	}
});